package com.tjetc;

public class _17ThisDetail {
    public static void main(String[] args) {
        // this的相关使用细节

        B b = new B();
        b.f();
        b.f1();
        b.f2();

    }
}


class B {

    int num = 1;
    int num1 = 1;

    public B() {
//        this(); 产生了循环调用
    }

    public B(int num) {

        this.num = num;
//        this();  调用构造器必须在第一句，因为没有对象能赋属性值
    }

    public B(int num, int num1) {
//        this.num = num;
        this(num); // 等价于  this.num = num;
        this.num1 = num1;
    }

    public void f() {
        System.out.println(this.num);
    }

    public void f1() {
        this.f();
//        this.B(); 构造器是系统调用的 不能自己调用
    }


    public void f2() {
        int num = 2;
        System.out.println(num);
        // 如果就想使用对象中的属性值，就必须显示的写出this关键字
        System.out.println(this.num);
    }
}